package com.eshore.norm.pojo.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 存储卷详情列表
 * </p>
 *
 * @author chenjl
 * @since 2024-01-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class NormVolume implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 资源池id
     */
    @ApiModelProperty(value = "资源池id")
    private Long configId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateDate;

    /**
     * 卷的UUID
     */
    @ApiModelProperty(value = "卷的UUID")
    private String volumesDetailId;

    /**
     * 卷迁移状态。仅管理员可见
     */
    @ApiModelProperty(value = "卷迁移状态")
    private String migrationStatus;

    /**
     * 可用区名称
     */
    @ApiModelProperty(value = "可用区名称")
    private String availabilityZone;

    /**
     * 卷当前的后端信息，主机格式为"host@backend#pool”。
     */
    @ApiModelProperty(value = "卷当前的后端信息")
    private String osVolHostAttrHost;

    /**
     * 如果为true，则表示该卷已加密。
     */
    @ApiModelProperty(value = "如果为true")
    private Boolean encrypted;


    /**
     * 资源更新的日期和时间。日期和时间戳格式为ISO 8601_ CCYY_MM_DDThh_mm_ss±hh_mm，例如2015_08_27T09_49_58_05_00。
     */
    @ApiModelProperty(value = "资源更新的日期和时间")
    private String updatedAt;


    /**
     * 卷的大小，以gibibyte (GiB)为单位。
     */
    @ApiModelProperty(value = "卷的大小")
    private Integer size;

    /**
     * 用户的UUID。
     */
    @ApiModelProperty(value = "用户的UUID")
    private String userId;

    /**
     * 卷所属的项目ID。
     */
    @ApiModelProperty(value = "卷所属的项目ID")
    private String osVolTenantAttrTenantId;


    /**
     * 卷的状态。
     */
    @ApiModelProperty(value = "卷的状态")
    @TableField("status")
    private String status;

    /**
     * 卷的描述。
     */
    @ApiModelProperty(value = "卷的描述")
    private String description;

    /**
     * 如果为true，则表示该卷可以附加到多个实例。
     */
    @ApiModelProperty(value = "如果为true，则表示该卷可以附加到多个实例")
    private Boolean multiattach;


    /**
     * 卷的名称。
     */
    @ApiModelProperty(value = "卷的名称")
    @TableField("name")
    private String name;



    /**
     * 资源创建的日期和时间。日期和时间戳格式为ISO 8601_ CCYY_MM_DDThh_mm_ss±hh_mm，例如2015_08_27T09_49_58_05_00。
     */
    @ApiModelProperty(value = "资源创建的日期和时间")
    private String createdAt;

    /**
     * 与该卷关联的卷类型的名称。
     */
    @ApiModelProperty(value = "与该卷关联的卷类型的名称")
    private String volumeType;

    /**
     * 组的ID。从版本3.13开始新增。
     */
    @ApiModelProperty(value = "组的ID")
    private String groupId;

    /**
     * 该卷的提供者ID。如果驱动程序未使用此字段或尚未创建该字段，则该值为null。仅对管理员返回。从版本3.21开始新增。
     */
    @ApiModelProperty(value = "该卷的提供者ID")
    private String providerId;

    /**
     * 用于指示特定卷的卷服务正在由哪个节点为其提供服务的唯一标识符。从版本3.48开始新增。
     */
    @ApiModelProperty(value = "用于指示特定卷的卷服务正在由哪个节点为其提供服务的唯一标识符")
    private String serviceUuid;



    /**
     * 卷后端的集群名称。从版本3.61开始新增。
     */
    @ApiModelProperty(value = "卷后端的集群名称")
    private String clusterName;

    /**
     * 资源是否消耗配额的指示符。通常情况下，不计入配额使用量的资源是为执行操作而创建的临时内部资源。从版本3.65开始新增。
     */
    @ApiModelProperty(value = "资源是否消耗配额的指示符")
    private Boolean consumesQuota;

    /**
     * 在应用分页之前请求的资源总数。从版本3.45开始新增。
     */
    @ApiModelProperty(value = "在应用分页之前请求的资源总数")
    private Integer count;


}
